package com.yk;

import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.time.Duration;

/**
 * 2-7 Input输入元素操作
 */
public class Selenimu5 {
    public static void main(String[] args) {
        WebDriverManager.chromedriver().setup();
        WebDriver driver = new ChromeDriver();

        try {
            driver.get("https://www.imooc.com/user/newforgot");

            WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
            // 尝试关闭可能的广告弹窗，但如果不存在则忽略
            // 为第一个元素（广告弹窗关闭按钮）添加了 try-catch 块，这样即使找不到该元素也不会导致程序崩溃
            try {
                wait.until(ExpectedConditions.elementToBeClickable(By.id("js-advpop-close"))).click();
                // 在关闭弹窗后添加了短暂等待，确保弹窗完全关闭
                Thread.sleep(1000);
            } catch (Exception e) {
                // 如果没有广告弹窗，继续执行
                System.out.println("没有找到广告弹窗，忽略...");
            }

            //使用 By.name("email") 定位name属性为"email"的输入框
            WebElement webElement = driver.findElement(By.name("email"));
            //获取输入框的placeholder属性值并打印
            String placeholder = webElement.getAttribute("placeholder");
            //placeholder = 请输入登录手机号/邮箱
            System.out.println("placeholder = " + placeholder);
            //使用 sendKeys() 方法向输入框输入手机号"13886617322"
            webElement.sendKeys("13886617322");
            //获取输入后的value属性值并打印
            String mobile = webElement.getAttribute("value");
            //mobile = 13886617322
            System.out.println("mobile = " + mobile);
            //检查元素是否启用(enabled)并打印结果
            boolean enabled = webElement.isEnabled();
            //enabled = true
            System.out.println("enabled = " + enabled);
        } finally {
            System.out.println("关闭浏览器...");
        }
    }
}
